package cn.webestar.scms.scheduling;

import lombok.Data;

@Data
public class SimpleTask implements SchedulingTask {

    /**
     * 任务名称
     */
    private String name;

    /**
     * 任务执行表达式
     */
    private String cron;

    /**
     * 锁超时时间,单位秒,默认60秒,
     * 建议设置为执行业务所需时间的两倍
     * 0 < lockTimeout <= 3600
     * 等于0：等于0或者值太小，可能会导致锁失效，多个实例被执行
     * 小于0：异常退出后，锁不会被释放，没有实例能够再次获取锁
     * 大于3600：锁定时间太长，不合理，应该优化业务，减少一次任务的时长，改为多次，少量执行
     */
    private int lockTimeout = 60;

    public SimpleTask() {
    }

    public SimpleTask(String name, String cron, int lockTimeout) {
        this.name = name;
        this.cron = cron;
        this.lockTimeout = lockTimeout;
    }

}
